// ml:run = $bin < input
#include <iostream>
#include <queue>

int const maxn = 2010;
int a[maxn];
int count[maxn];
int n, m;
std::queue<int> q[maxn];

int main()
{
    std::ios_base::sync_with_stdio(false);
    std::cin >> n >> m;
    for (int i = 0; i < n; i++) std::cin >> a[i];
    int ans = n / m;
    for (int i = 0; i < n; i++)
        if (a[i] <= m) {
            count[a[i]]++;
            q[a[i]].push(i);
        }
    int c = 0;
    for (int i = 0; i < n; i++)
        if (a[i] > m) {
            int j = 1;
            for (; j <= m; j++) if (count[j] < ans) break;
            if (j > m) break;
            a[i] = j;
            count[j]++;
            c++;
        }
    for (int i = 1; i <= m; i++) {
        if (count[i] >= ans) continue;
        int j = 1;
        for (; j <= m; j++) {
            if (count[j] <= ans) continue;
            int need = ans - count[i];
            need = std::min(need, count[j] - ans);
            c += need;
            count[i] += need;
            count[j] -= need;
            for (int k = 0; k < need; k++) {
                a[q[j].front()] = i;
                q[j].pop();
            }
        }
    }
    std::cout << ans << " " << c << "\n";
    for (int i = 0; i < n; i++)
        std::cout << a[i] << " ";
    std::cout << "\n";
}

